package services

import (
	"database/sql"
	"gitee.com/dingdang4D/go-basic-exercises/models"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var Db *gorm.DB

func CreateDatabase(dsn string) error {
	// 打开一个连接到 MySQL 服务器
	Db, err := sql.Open("mysql", dsn)
	if err != nil {
		return err
	}
	defer Db.Close()

	// 创建数据库
	_, err = Db.Exec("CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci")
	if err != nil {
		return err
	}

	return nil
}

// InitDB 初始化数据库连接
func InitDB(dsn string) error {
	var err error
	Db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		return err
	}

	// 自动迁移模式
	Db.AutoMigrate(&models.User{})
	Db.AutoMigrate(&models.Role{})

	return nil
}
